diff -ur sdldoom-1.10-orig/d_main.c sdldoom-1.10/d_main.c
--- sdldoom-1.10-orig/d_main.c	1999-12-21 08:16:15.000000000 +0300
+++ sdldoom-1.10/d_main.c	2023-09-07 23:32:12.950736768 +0300
@@ -994,7 +994,7 @@
 	else
 	{
 	    startepisode = myargv[p+1][0]-'0';
-	    startmap = myargv[p+2][0]-'0';
+	    startmap = myargv[p+1][1]-'0';
 	}
 	autostart = true;
     }
diff -ur sdldoom-1.10-orig/g_game.c sdldoom-1.10/g_game.c
--- sdldoom-1.10-orig/g_game.c	1999-12-21 08:16:16.000000000 +0300
+++ sdldoom-1.10/g_game.c	2023-09-16 21:37:06.059695181 +0300
@@ -1583,14 +1583,16 @@
 { 
     skill_t skill; 
     int             i, episode, map; 
+    char inver;
 	 
     gameaction = ga_nothing; 
     demobuffer = demo_p = W_CacheLumpName (defdemoname, PU_STATIC); 
-    if ( *demo_p++ != VERSION_NUM)
+    if ( (inver = *demo_p++) != VERSION_NUM)
     {
       fprintf( stderr, "Demo is from a different game version!\n");
       gameaction = ga_nothing;
-      return;
+      if (inver <= 102 || inver > VERSION_NUM)
+        return;
     }
     
     skill = *demo_p++; 
diff -ur sdldoom-1.10-orig/i_video.c sdldoom-1.10/i_video.c
--- sdldoom-1.10-orig/i_video.c	1999-12-21 08:16:17.000000000 +0300
+++ sdldoom-1.10/i_video.c	2023-09-07 22:11:53.724842584 +0300
@@ -165,7 +165,7 @@
 	D_PostEvent(&event);
 	break;
 
-#if (SDL_MAJOR_VERSION >= 0) && (SDL_MINOR_VERSION >= 9)
+#if (SDL_MAJOR_VERSION > 0) || (SDL_MINOR_VERSION >= 9)
       case SDL_MOUSEMOTION:
 	/* Ignore mouse warp events */
 	if ((Event->motion.x != screen->w/2)||(Event->motion.y != screen->h/2))
